DOM 요소의 위치 확인하기(getBoundingClientRect())

✒️ 2025-05-08 01:02 내용 수정


참고 자료 : mdn web docs Element getBoundingClientRect

<!-- test.html -->
<div class="container"></div>
/* css */
/* html과 body의 margin과 padding 제거 */
* {
	margin: 0; padding: 0;
}

/* container */
.container {
	padding: 30px;
	margin: 20px auto;
	width: 300px;
	height: 150px;
	background: orange;
}
// script
const container = document.querySelector(".container");
const info = container.getBoundingClientRect();
console.log(info);

js_getboundingclientrect 1.png

js_getboundingclientrect_visual 1.png

/* container */
.container {
	box-sizing: border-box;
	padding: 30px;
	margin: 20px auto;
	width: 300px;
	height: 150px;
	background: orange;
}

js_getboundingclientrect 2.png

js_getboundingclientrect_visual 2.png


스크롤 시의 위치 정보

* {
    margin: 0; padding: 0;
}

/* body를 길게 만들어 스크롤 생성하기 */
body {
    height: 200vh;
}

.container {
    box-sizing: border-box;
	padding: 30px;
	margin: 20px auto;
	width: 300px;
	height: 150px;
	background: orange;
}

js_getboundingclientrect 3.png

// script
const container = document.querySelector(".container");
const info = container.getBoundingClientRect();

// 문서의 top-left 기준으로 박스 위치를 지정
let bounding_left = info.left + window.scrollX;
let bounding_top = info.top + window.scrollY;